Version 4 of VSTGUI is a new milestone release with a restructured code base with the focus of code conformity and easier future enhancements. The result is that code written for any earlier version of VSTGUI is not always compatible. It's recommended to start new projects with version 4 while old projects should stay with version 3.6.
- iOS Support with Multi Touch handling. See iOS support notes
- support drawing an icon on a VSTGUI::CTextButton
- VSTGUI::CGradientView
- VSTGUI::CDataBrowser now supports multi row selections
- support compiling in c++11 mode with clang and visual studio
- VSTGUI_OVERRIDE_VMETHOD is now used throughout the vstgui sources to indicate methods which are expecting to override a virtual method of its base classes. (c++11 only)
- the class CDragContainer is replaced by IDataPackage. The class CDragContainerHelper is a helper class you can use to quickly get your code up and running again.
- the class IDataBrowser is renamed to IDataBrowserDelegate and the drag and drop methods have changed
- CView::getVisibleSize () was renamed to CView::getVisibleViewSize ()
- the pBackground member of CView is now private. You must replace all read access with getDrawBackground () or getBackground () and all write access with setBackground ()
- the variable types were changed to use C99 style types (int32_t, etc), you must do this for all your derivated VSTGUI classes too
- the buttons parameter has changed from long to CButtonState
- your custom views need to use the new mouse methods
- COptionMenuScheme is not available anymore
- VSTGUI::CFileSelector is gone, you have to use VSTGUI::CNewFileSelector
- VST extensions previously enabled via ENABLE_VST_EXTENSION_IN_VSTGUI is gone without replacement
- VSTGUI::CBitmap was completely changed and does not use a transparency color anymore, you need to use the alpha channel of a bitmap to get the same results
- VSTGUI::COffscreenContext is handled completely different. But in most cases you can simply remove all offscreens where you needed them to reduce flicker.
- On Windows graphics are entirely drawn with GDI+ or Direct2D (when available), GDI is not used anymore
- The internal string encoding is now always UTF-8
- The VSTGUI::CCoord type is now always a double
- on Mac OS X, embedding a CFrame into a non composited carbon window is not supported anymore
- on Mac OS X, when targeting Mac OS X 10.4 some of the graphics path methods are not implemented.
- Method signature changes which don't lead to compile errors:
- CView::setViewSize (CRect& rect, bool invalid = true)
- CView::hitTest (const CPoint& where, CButtonState& buttons = -1)
- CView::invalidRect (CRect& rect)
- CViewContainer::drawBackgroundRect (CDrawContext* pContext, CRect& _updateRect)
- CViewContainer::addView (CView* pView, CRect& mouseableArea, bool mouseEnabled = true)
- To get cocoa support your minimum required Mac OS X version is 10.5.
- In 32 bit Cocoa and Carbon are available. You can switch between them with CFrame::setCocoaMode(bool state). You must do this before creating the CFrame.
- In 64 bit only Cocoa is available.
- The pSystemWindow pointer in the CFrame constructor must be a NSView not a NSWindow.
- VSTGUI supports iOS 7 and later
- Currently COptionMenu and COpenGLView are not supported
- CScrollView is not supported yet
- Support for a single MultiTouch View is not yet tested and the API may change in the future
- Bitmaps are currently drawn stretched on retina displays